package Day_0221.Spring;

/**
 * @author zxc
 * @date 2023/02/21 23:12
 **/
public class Spring_DesignPattern {
    public static void main(String[] args) {
        /**
         * Spring 框架中所使用到的设计模式
         * ===》
         * 1. 工厂模式：
         * BeanFactory，就是简单工厂模式的体现，用来创建对象的实例；
         *
         * 2. 单例模式：
         * Bean，默认为单例模式。
         *
         * 3. 代理模式：
         * Spring的AOP功能，用到了JDK的动态代理 && CGLIB字节码生成技术；
         *
         * 4. 模板方法：
         * 用来解决代码重复的问题。比如. RestTemplate, JmsTemplate, JpaTemplate。
         *
         * 5. 观察者模式：
         * 定义对象键一种一对多的依赖关系，当一个对象状态发生改变时，所有依赖于它的对象都会得到通知，被强制更新，
         * 如 ：Spring中listener的实现–ApplicationListener。
         *
         */
    }
}
